Robot and device having multi-axis motion sensor, and method of use thereof

ABSTRACT

A device including a housing configured to attach to a robot arm, and a multi-axis motion sensor provided within the housing. The multi-axis motion sensor is configured to detect movement of the housing, and is configured to communicate with a controller of the robot arm. The device further includes a user interface configured to operate in conjunction with the multi-axis motion sensor, and a connection port provided on the housing. The connection port is configured to connect to an external device.

CROSS-REFERENCE TO RELATED APPLICATION

The present application claims priority to U.S. Provisional ApplicationNo. 62/030,651, filed on Jul. 30, 2014, the entire contents of which areherein incorporated by reference.

BACKGROUND OF THE INVENTION

Field of the Invention

The present invention relates to operation and teaching of a robot.

Discussion of the Background

There are three basic methods for programming industrial robots: pendantbased teaching, offline teaching, and lead-through teaching.

Pendant based teaching method involves moving of a physical robotthrough an operator interface (or teaching pendant) that allows theoperator to command motion of each axes of the robot. Various choicesare available for axes of motion based on a coordinate frame selected bythe operator. For example, axis (joint) coordinates allow the motion ofeach joint axes of the robot in its respective positive and negativedirection, robot coordinates use a robot that is installed with acoordinate frame at an origin of the robot aligned with a given worldframe, and tool coordinates represent a coordinate frame that isattached to a robot tool plate that is a mechanical part of the robot onwhich an end-effector (such as a gripper) is installed. However, each ofthese coordinate frames may not be intuitive or obvious to a user who isteaching the robot.

Offline teaching is another technique which uses a virtual robot(comprised of a 3D model of the robot and potentially other items in arobot workcell) instead of a physical robot. Some of these virtualenvironments have integrated computer-aided design capabilities andallow the user to point and click on a position of interest, therebycausing the simulated robot to move to that point. This feature reducesthe manual effort required to jog (drive) the robot to the intendedposition in three dimensional space.

Lead-through teaching is another method of robot programming thatinvolves teaching the robot application logic and specific positions bymoving the robot by grasping its end-effector and moving it through thetask it is supposed to accomplish. This technique can be used to teachthe path the robot has to follow along with specific positions and someapplication logic. To get the direction input from the user,force/torque sensors are usually used. An advantage of this approach isthat an operator can not only teach the path, the positions, but canalso teach resistive force that the robot needs to apply to theenvironment when contact is made. The challenge is that the force/torquesensors used in this approach are relatively expensive, which makes therobot system with lead through teaching less attractive in terms ofcost.

While lead-through teaching can be intuitive to a user, currentlead-through teaching device and methods are relatively expensive andlimited in their ability to be incorporated into a robot system.Accordingly, a method and device is needed that can overcome thedisadvantages and limitations of other such devices.

During operation, a robot may collide with an obstacle. To preventdamage to the robot, the end-effector, and the obstacle, the collisionneeds to be detected to have the robot stopped. Various devices andmethods are available for collision detection, such as a dedicatedcollision detection device, a joint torque-based collision detectiondevice that detects collision by measuring torque exerted on each joint,and a motor torque based collision detection. However, these methodshave various disadvantages, such as limited accuracy and additionalexpense related to the various sensors used. Accordingly, a method anddevice is needed that can overcome the disadvantages and limitations ofother such devices.

Additionally, when vibration occurs during a robot's operation, thespeed and/or the acceleration of the motion needs to reduced, in turn,causing higher cycle time. Since the vibration of a robot cannot befully estimated in advance, a robot controller may assume a worst casescenario and reduce overall cycle time performance to avoid potentialvibration. Accordingly, there is a need for a cost effective manner toallow a robot to achieve better cycle time performance.

SUMMARY OF THE INVENTION

Embodiments of the present invention advantageously provide a devicethat includes a housing configured to attach to a robot arm, and amulti-axis motion sensor provided within the housing, where themulti-axis motion sensor is configured to detect movement of the housingand is configured to communicate with a controller of the robot arm. Thedevice further includes a user interface configured to operate inconjunction with the multi-axis motion sensor, and a connection portprovided on the housing, where the connection port is configured toconnect to an external device.

Embodiments of the present invention advantageously provide a robotincluding a robot arm, a controller configured to control the robot arm,and a device having a housing attached to the robot arm and a multi-axismotion sensor provided within the housing. The multi-axis motion sensoris configured to detect movement of the housing and is configured tocommunicate with the controller of the robot arm. The device furtherincludes a user interface configured to operate in conjunction with themulti-axis motion sensor, and a connection port provided on the housing,where the connection port is configured to connect to an externaldevice.

Embodiments of the present invention advantageously provide a methodincluding attaching a device to a robot arm, where the device includes ahousing for attaching to the robot arm, and a multi-axis motion sensorprovided within the housing, where the multi-axis motion sensor isconfigured to detect movement of the housing and is configured tocommunicate with a controller of the robot arm. The device furtherincludes a user interface configured to operate in conjunction with themulti-axis motion sensor, and a connection port provided on the housing,where the connection port is configured to connect to an externaldevice. The method further includes detecting movement of the housingusing the multi-axis motion sensor, and controlling operation of therobot arm using the detected movement of the housing.

BRIEF DESCRIPTION OF THE DRAWINGS

A more complete appreciation of the invention and many of the attendantadvantages thereof will become readily apparent with reference to thefollowing detailed description, particularly when considered inconjunction with the accompanying drawings, in which:

FIG. 1 is an assembled, perspective view of a device according to anembodiment of the invention;

FIG. 2 is an exploded, perspective view of the device depicted in FIG.1;

FIG. 3 is a perspective view of the device depicted in FIG. 1 mounted toa robot arm in an in-line (or series) configuration with anend-effector;

FIG. 4 is a perspective view of the device depicted in FIG. 1 mounted toa robot arm in a parallel configuration with an end-effector;

FIG. 5 is an enlarged, perspective view of a connection port of thedevice depicted in FIG. 1 that is configured to connect to an externaldevice;

FIG. 6 is a perspective view of the device depicted in FIG. 1 mounted toa robot arm in an in-line (or series) configuration with anend-effector, where the device has external devices attached thereto;

FIG. 7 is a diagram depicting an embodiment of a system of the presentinvention for implementing control of a robot using an embodiment of adevice of the present invention;

FIG. 8 shows an exemplary plot of acceleration that an embodiment of adevice of the present invention experiences during a predeterminednormal operation;

FIG. 9 shows an exemplary plot of acceleration that the embodiment ofthe device of the present invention experiences when a collision occurs;and

FIG. 10 is a flowchart showing an embodiment of a method of utilizing anembodiment of a device of the present invention with a robot.

DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS OF THE INVENTION

Embodiments of the present invention will be described hereinafter withreference to the accompanying drawings. In the following description,the constituent elements having substantially the same function andarrangement are denoted by the same reference numerals, and repetitivedescriptions will be made only when necessary.

The phrase “multi-axis motion sensor” used herein generally refers toany type of device that detects motion (i.e. motion sensing device) thatprovides three degrees of freedom or more. For example, the non-limitingembodiments described herein include a 3D mouse as the multi-axis motionsensor. The 3D mouse can provide displacement motion sensing along threeaxes and rotational motion sensing about the three axes, therebyproviding a six-dimensional motion sensing device. The 3D mouse canoperate use a variety of sensors, for example, the 3D mouse can be amechanical assembly with strain gauges, accelerometers, etc. providedtherein, or the 3D mouse can function using ultrasound.

Described herein are embodiments of a device including a housingconfigured to attach to a robot arm, and a 3D mouse, as an embodiment ofa multi-axis motion sensor, provided within the housing. The 3D mouse isconfigured to detect movement of the housing, and is configured tocommunicate with a controller (see, e.g., controller 701 in FIG. 7) ofthe robot arm. The device further includes a user interface configuredto operate in conjunction with the 3D mouse, and a connection portprovided on the housing, where the connection port is configured toconnect to an external device.

Embodiments of the device provide an integrated device with a multi-axismotion sensor that can simplify robot programming, detect error duringmotion, improve performance of a robot's motion, and can function as ahub for other peripheral devices. For example, embodiments of the devicecan be used to perform tasks, such as providing built-in capability forlead-through programming (jogging and teaching), providing built-insensing for collision detection during robot motion, providing built-insensing for vibration, which can be used for better motion performance,providing built-in capability for operator communication, providing ahub for sensor integration, providing a hub for tool mechanical andcontrol integration, etc.

FIG. 1 shows an assembled, perspective view of a device 100 according toan embodiment of the invention. FIG. 2 show an exploded, perspectiveview of the device 100 depicted in FIG. 1. The device 100 shown in FIGS.1 and 2 includes a housing 110 having a cap 120 and a base housing 140.A 3D mouse 160 is provided within the housing 110. A top plate 180 isprovided that is attached to an upper surface of the cap 120, and a baseplate 190 is provided that is attached to a lower surface of the basehousing 140.

The housing 110 is configured to attach to a robot arm, for example, viathe top plate 180 and/or via the base plate 190. As will be described ingreater detail below, the device can be mounted to a robot arm invarious configurations, for example, in an in-line (or series)configuration (see, e.g. FIG. 3) with an end-effector, in a parallelconfiguration with an end effector (see, e.g., FIG. 4), in in-line orparallel configurations at other locations on the robot arm. Mountingholes are provided on the top plate 180 and the base plate 190 to attachthese plates together, to the housing 110, and/or to other components,such as to the mechanical interface of a robot arm, an end-effector,etc. Additionally, holes can be provided through the top plate 180and/or the base plate in order to allow cables to extend therethroughfor power supply, communication, etc.

In the embodiments shown in FIGS. 3 and 4, the base plate 190 isattached to the mechanical interface of the robot, and therefore thebase plate 190 is acting as a mounting plate. The top plate 180 can beattached to the end-effector if in-line configuration is used. In aparallel configuration, the top plate 180 can be left unattached. Thetop plate 180 is also attached to a top portion 142 of the base housing140, and the base housing 140 has a bottom portion 144 that is attachedto the base plate 190. The top portion 142 of the base housing 140extends up to corresponding openings 124 in an upper portion 122 of thecap 120, when the cap 120 is provided on the base housing 140. The topplate 180, the base housing 140, and the base plate 190 will carry allthe loads from the end-effector when the device 100 is provided in thein-line configuration.

The base housing 140 has a recess 146 receiving the 3D mouse 160. Whenthe cap 120 is connected to the base housing 140, the cap 120 covers therecess 146, thereby enclosing the 3D mouse 160 within the housing 110.The 3D mouse 160 is attached to the base housing 140, and a top of 3Dmouse 160 is attached to the cap 120 using an adapter plate 182. A userwill hold the cap 120, and push or pull the cap 120 in the direction theuser wants to move the robot's end-effector. The 3D mouse 160 isconfigured to detect movement of the housing 110. The 3D mouse 160 isconfigured to detect acceleration, for example, in order to determinevibration of the device or collision with an object, and the 3D mouse160 is configured to transmit the detected acceleration to thecontroller. The 3D mouse 160 is configured to communicate with acontroller of the robot arm either using a wired connection or wirelesscommunication.

The device further includes a user interface configured to operate inconjunction with the 3D mouse. The user interface of the device caninclude one or more of: one or more lights 128 for conveying informationto a user; one or more buttons 150 for allowing for user input; and oneor more microphones and/or speakers 152 for input or outputtinginformation. As can be seen in FIGS. 1 and 2, the user interface caninclude one or more first user interface devices provided on an outercircumferential surface 148 of the base housing 140, such as the buttons150 and microphone 152, and the user interface can include on one ormore second user interface devices provided on an outer circumferentialsurface 126 of the cap 120, such as lights 128.

The buttons 150 can communicate with the controller of the robot arm andcan include one or more of: a motion selection button configured toselect a type of motion of the robot arm; an end effector buttonconfigured to control operation of an end effector mounted to the robotarm; and a teaching button control to teach an operation of the robotarm to the controller. The buttons 150 are removably mounted withinholes 149 on the outer circumferential surface 148 of the base housing140. By pressing the buttons 150, the user can command operations suchas mode change, teaching operations, and end-effector action.

The lights 128 can be of various types (e.g., light emitting diodes(LEDs), conventional bulbs, etc.) and can be of various colors or colorchanging lights. The lights 128 can be configured to provide indicia ofa status of operation of the robot arm, and/or convey any variety ofinformation to the user. The lights 128 are used to inform the user ofthe current status of the robot. By using various colors, the lights 128can be used to show the robot's current mode. For example, the currentmode can be a teach mode or a play mode, which can be indicated by usinga specific one of the lights 128 or by using a specific color. Byblinking the lights 128, the device 100 can show the existence of anerror.

The lights 128 can provide the operator with an indication of a currentstatus of the robot. The lights 128 can show different colors, whereeach color can be assigned to a different status. One example of a colorcode set includes: red indicating a play mode; blue indicating alead-through teaching mode plus a translational motion; and greenindicating a lead-through teaching mode plus a rotational motion. Bycontinuously blinking the lights 128, the device 100 can also inform theoperator of the existence of an error. When the error is resolved, theblinking will stop. When one of the buttons 150 is pressed, the device100 can acknowledge the button pressing by blinking the lights 128 for ashort period of time.

The microphone 152 allows the user to record his/her voice for currentevents, such as the description of the current teaching point.Additionally or alternatively, the user interface can include speaker(s)for replaying recordings, providing sounds signals, such as instructionsor warnings, etc.

The device 100 further includes one or more connection ports, such asconnection port 154 provided on the housing 110, where the connectionport 154 is configured to connect to an external device (see, e.g., FIG.6). The external device can be one or more of a camera, a light, asensor (e.g., an accelerometer, etc.), etc. The connection port 154 isprovided on the outer circumferential surface 148 of the base housing140. The user interface can be configured to control the external devicevia the connection port 154, and the connection port 154 can beconfigured to provide power to the external device.

As can be seen in FIGS. 1 and 5, the connection port 154 includes: amechanical interface 155 configured to mount the external device to thehousing 110; a power port 158 (e.g., positive and negative DC powerterminals) configured to provide power to the external device; and acommunication port 159 (e.g., a universal serial bus (USB) port or otherpower/communication port) configured to allow communication between theexternal device and at least one of the user interface and thecontroller. The mechanical interface 155 includes an open portion 156for receiving a mating portion on the external device, and a lip portion157 that would engage the mating portion on the external device when themating portion is inserted through the open portion 156 and then rotatedto abut the lip portion 157. Therefore, as noted above, the userinterface can be configured to control the external device via theconnection port 154. For example, one or more of the buttons 150 cancontrol power to the external device, and/or operation of the externaldevice via the power port 158 and/or the communication port 159.

Embodiments of the device 100 can be used in conjunction with robotarms. For example, in order for a robot to perform a task, anend-effector can be attached to a link (also called mechanicalinterface) of a robot arm of the robot. Various types of end-effectorsare used, such as grippers, welding torches, material removal tools,etc. Grippers are a common type of end-effector that are used, forexample, for moving objects from one place to another. To pick up andhold products, grippers use several different power sources includingvacuum (or suction), pneumatic actuator, hydraulic, and servo electric.Welding torches are used for robotic arc welding process. Roboticmaterial removal tools include cutting, drilling and deburring tools.

Embodiments of the device 100 can be attached to a robot arm in variousconfigurations, for example, in an in-line (or series) configurationwith an end-effector, in a parallel configuration with an end effector,or in in-line or parallel configurations at other locations on the robotarm. For example, FIG. 3 depicts the device 100 in an in-line (orseries) configuration on a robot arm 10 with an end-effector 50, andFIG. 4 depicts the device 100 in a parallel configuration on the robotarm 10 with the end effector 50.

In in-line configuration shown in FIG. 3, the device 100 is placedbetween the robot's mechanical interface 20 and the end-effector 50.More specifically, the base plate 190 of the device 100 is attached tothe mechanical interface 20 and the top plate 180 of the device 100 isattached to the end-effector 50. In this embodiment, the base plate 190is acting as the mounting plate. In the in-line configuration, the topplate 180, the base housing 140, and the base plate 190 will carry allthe loads from the end-effector 50. Thus, the in-line configuration canbe used when the payload is lower than the device 100 can take.

In the parallel configuration shown in FIG. 4, the device 100 and theend-effector 50 are attached to the robot's mechanical interface 20 inparallel to one another. More specifically, an adapter plate 200 isattached to the mechanical interface 20, the end effector is attached toa first portion 202 of the adapter plate 200 directly beneath themechanical interface 20, and the base plate 190 of the device 100 isattached to a second portion 204 of the mechanical interface 20 that isoffset from the mechanical interface 20. In this embodiment, the baseplate 190 is acting as the mounting plate. Therefore, one portion (i.e.,in this embodiment base plate 190) of the device 100 is attached to themechanical interface 20 via the adapter plate 200, and an oppositeportion (i.e., in this embodiment top plate 180) of the device 100 isnot attached to anything. Thus, the parallel configuration can be usedespecially when the payload is higher than the device 100 can take.

FIG. 6 depicts the device 100 mounted in an in-line configuration withone end attached to a mechanical interface 20 of a robot arm 10 and theother end attached to an end effector 50. In FIG. 6, external devicesare connected to connection ports 154 of the device 100. In FIG. 6, theexternal devices include a camera 610 and a light 620. The camera 610 ismechanically and electrically connected to a connection port 154 via amounting arm 612 having a joint 614 to allow for movement and adjustmentof the position/orientation of the camera 610. Similarly, the light 620is mechanically and electrically connected to a connection port 154 viaa mounting arm 622 having a joint 624 to allow for movement andadjustment of the position/orientation of the light 620. The device 100can be configured to have additional connection ports that allow formounting and operation of a variety of external devices. As notedpreviously, the user interface can be configured to control the externaldevice via the connection port 154, and the connection port 154 can beconfigured to provide power to the external device.

FIG. 7 is a diagram depicting an embodiment of a system 700 forimplementing control of a robot using the device of the presentinvention. As illustrated in FIG. 7, the system 700 includes acontroller 701 that is preferably provided external to the device 100,but that can alternatively incorporated into the device 100. Controller100 includes an information processing device such as a processor orcomputer that includes a central processing unit (CPU) and performsprocessing or control by software programming. The controller 700 canincludes a CPU, a random access memory (RAM) and a read only memory(ROM). The controller 701 is connected memory 703 to store and retrievedata. The controller 701 is in wireless or wired communication withrobot 705 to allow the controller to receive information form the robot705 and to control operation of the robot 705. The controller is inwireless or wired communication with the 3D mouse 707 (e.g., 3D mouse160) and the user interface 709 (e.g., lights 128, buttons 150,microphones and/or speakers 152, etc.) to send and receive signals. Thecontroller 701 is programmed to implement the operational aspects of thedevice and robot described herein.

As can be seen from the above description, the device 100 provides notonly a variety of built-in functions (such as lead-through teaching,collision detection, and vibration sensing) but also acts as a hub forsensor and tool integration. The device 100 uses a flexible 3D mousemodule not only as a pointing device, but also as an accelerationsensing device, which can be used for collision detection and vibrationsensing.

The device 100 can act as a lead-through programming or teaching deviceand thus be used for lead-through teaching by using the 3D mouse andbuttons. The user can push the cap of the 3D mouse to the directionwhere he/she wants to move the end-effector of the robot. Then, the 3Dmouse will send the direction signal to the robot controller, which, inturn, moves the robot to the commanded direction.

In an exemplary embodiment in which the device acts as a lead-throughprogramming or teaching device, the device 100 includes buttons 150,such as: a motion type selection button; an end-effector operationbutton; and a teaching button (e.g., teaching, such as, recording acurrent tool position and an end-effector state). By pressing the motiontype button, the operator changes the type of the robot jogging motionfor easier operation. The type of the motion can be, for example,translational motion or rotational motion. By pressing the end-effectoroperation button, the operator commands the robot to operate theend-effector. For example, if the robot has a gripper as anend-effector, the operator can open or close the gripper by pressing thebutton. Regarding the teaching button, when the end-effector has reacheda target location and the end-effector is in a desirable state (e.g.,posture or orientation of the end-effector, current state of actuatablemembers or grippers of the end-effector, etc.), then the operator cancommand the controller to record the current tool location and theend-effector state by pressing the teaching button. When the teachingbutton is pressed, then the microphone can be used by the operator torecord the description of the taught tool position.

During operation, a robot may collide with an obstacle. To preventdamage to the robot, the end-effector, and the obstacle, the collisionneeds to be detected so that the robot can be stopped in order toprevent or minimize damage from the collision.

The 3D mouse 160 of the device 100 is configured to detect accelerationof the device 100, and communicate this information with a controller ofthe robot arm. For example, the 3D mouse is configured to detectacceleration in order to determine vibration of the device or collisionwith an object. The 3D mouse is configured to transmit the detectedacceleration to the controller.

As an acceleration detection device, the 3D mouse 160 can be used forcollision detection and vibration control. Since the 3D mouse includessprings and has a mass, it can detect the acceleration applied to the 3Dmouse. The formulation to detect the acceleration is as follows:F=m×a=k×x  [Eq. 1],where “m” is the mass of a handle part of the 3D mouse, “a” is theacceleration, “k” is a spring constant of the springs of the 3D mouse,and “x” is the displacement of the handle part.

The device 100 is used for collision detection by measuring accelerationusing the 3D mouse 160. When a robot collides with an object, the 3Dmouse will experience acceleration higher than that of normal operation.The acceleration of normal operation can be measured or estimated from amotion model that can be stored in a memory for comparison with currentmotion. For example, FIG. 8 shows an exemplary plot of acceleration thatthe device experiences during a predetermined normal operation. In FIG.8, the device 100 begins in a stopped state at 0 seconds on thetimeline, then accelerates from 0 seconds to 1 second along thetimeline, then travels at constant speeds from 1 second to 3.75 secondsalong the timeline, and then decelerates from 3.75 seconds to 4.75second along the timeline to a stopped state. (In FIGS. 7 and 8, theacceleration is shown using generic units for acceleration of a unit oflength/sec². Also, in this explanation, the acceleration is shown as anegative value and the deceleration is shown as a positive value;however, the positive/negative designations can be switched.)

FIG. 9 shows an exemplary plot of acceleration that the device 100 couldexperience when a collision occurs. In FIG. 9, the device 100 begins ina stopped state at 0 seconds on the timeline, then accelerates from 0seconds to 1 second along the timeline, then travels at constant speedsfrom 1 second to about 1.45 seconds along the timeline when the device100 experiences an abnormally high acceleration value (i.e., greatlyexceeds the normal about −200 acceleration value), which indicates acollision. When the 3D mouse detects abnormal higher acceleration,collision detection signal is sent to the robot controller, therebyproviding feedback control in which the robot is stopped to preventdamage to the robot and the object the robot is colliding with.

Another function of the device 100 is to allow for vibration control.The device 100 can be used to improve motion cycle time, while keepingthe vibration of the robot below an allowable value. In situations inwhich vibration of a robot during motion may not be capable of beingfully estimated in advance, conventional robot controllers usuallyassume the worst case scenario and reduce overall acceleration to avoidpotential vibration; however, such assumptions may unnecessarily slowthe motion of the robot and reduce efficiency. By measuring the actualvibration of the robot online using the 3D mouse 160 of the device 100,the robot controller can use higher acceleration and, in turn, bettercycle time instead of using a lower acceleration value based on theworst case scenario. Additionally, the 3D mouse 160 can be used tomeasure the acceleration of the robot instead of providing a separatededicated accelerometer.

FIG. 10 is a flowchart showing a method 1000 of utilizing a device ofthe present invention with a robot. The method includes a step 1001 ofattaching a device (e.g., device 100 of FIG. 1) to a robot arm. Thedevice includes a housing for attaching to the robot arm, a 3D mouseprovided within the housing, the 3D mouse being configured to detectmovement of the housing, the 3D mouse being configured to communicatewith a controller of the robot arm, a user interface configured tooperate in conjunction with the 3D mouse, and a connection port providedon the housing, the connection port being configured to connect to anexternal device. The method further includes a step 1003 of detectingmovement of the housing using the 3D mouse, and a step 1005 ofcontrolling operation of the robot arm using the detected movement ofthe housing.

The method can further include detecting acceleration using themulti-axis motion sensor in order to determine vibration of the deviceor collision with an object, where the detected acceleration is used toperform feedback control of the operation of the robot arm, for example,as discussed above. The method can further include manipulating therobot arm and operating the user interface to teach an operation of therobot arm to the controller, for example, as discussed above. The methodcan include operating the user interface to select a type of motion ofthe robot attn. The method can also include operating the user interfaceto control operation of an end effector mounted to the robot arm, and/oroperating the user interface to control the external device via theconnection port.

It should be noted that the exemplary embodiments depicted and describedherein set forth the preferred embodiments of the present invention, andare not meant to limit the scope of the claims hereto in any way.Numerous modifications and variations of the present invention arepossible in light of the above teachings. It is therefore to beunderstood that, within the scope of the appended claims, the inventionmay be practiced otherwise than as specifically described herein.

What is claimed is:
 1. A device comprising: a housing configured toattach to a robot arm; a multi-axis motion sensor provided within thehousing, the multi-axis motion sensor being configured to detectmovement of the housing, the multi-axis motion sensor being configuredto communicate with a controller of the robot arm; a user interfaceconfigured to operate in conjunction with the multi-axis motion sensor;and a connection port provided on the housing, the connection port beingconfigured to connect to an external device.
 2. The device according toclaim 1, further comprising a mounting plate attached to the housing,wherein the mounting plate is configured to attach to a mechanicalinterface on the robot arm with an end effector attached to themechanical interface in a parallel configuration such that a loadapplied to the end effector does not act on the housing.
 3. The deviceaccording to claim 1, further comprising: a mounting plate attached to afirst portion of the housing, the mounting plate being configured toattach to a mechanical interface on the robot arm; and an end effectorplate attached to a second portion of the housing opposite to the firstportion, wherein the mounting plate is configured to attach to themechanical interface and the end effector plate is configured to attachto the end effector in a series configuration such that a load appliedto the end effector acts on the housing.
 4. The device according toclaim 1, wherein the housing includes: a base housing having a recessreceiving the multi-axis motion sensor; and a cap connected to the basehousing and covering the recess, wherein the user interface includes oneor more first user interface devices provided on an outercircumferential surface of the base housing, and wherein the userinterface includes on one or more second user interface devices providedon an outer circumferential surface of the cap.
 5. The device accordingto claim 4, wherein the connection port is provided on the outercircumferential surface of the base housing, wherein the user interfaceincludes a microphone, and wherein the microphone is provided on theouter circumferential surface of the base housing.
 6. The deviceaccording to claim 1, wherein the multi-axis motion sensor is configuredto detect acceleration in order to determine vibration of the device orcollision with an object, and wherein the multi-axis motion sensor isconfigured to transmit the detected acceleration to the controller. 7.The device according to claim 1, wherein the user interface includes oneor more buttons configured to communicate with the controller of therobot arm.
 8. The device according to claim 1, wherein the userinterface includes one or more of: a motion selection button configuredto select a type of motion of the robot arm; an end effector buttonconfigured to control operation of an end effector mounted to the robotarm; and a teaching button control to teach an operation of the robotarm to the controller.
 9. The device according to claim 1, wherein theuser interface is configured to control the external device via theconnection port, and wherein the connection port is configured toprovide power to the external device.
 10. The device according to claim1, wherein the connection port includes: a power port configured toprovide power to the external device; a communication port configured toallow communication between the external device and at least one of theuser interface and the controller; and a mechanical interface configuredto mount the external device to the housing.
 11. The device according toclaim 1, wherein the user interface includes one or more lightsconfigured to provide indicia of a status of operation of the robot arm,wherein the user interface includes a microphone, and wherein theexternal device is a camera, a light, or an accelerometer.
 12. Thedevice according to claim 1, wherein the device does not include a forcesensor or load sensor.
 13. A robot comprising: a robot arm; a controllerconfigured to control the robot arm; and a device comprising: a housingattached to the robot arm; a multi-axis motion sensor provided withinthe housing, the multi-axis motion sensor being configured to detectmovement of the housing, the multi-axis motion sensor being configuredto communicate with the controller of the robot arm; a user interfaceconfigured to operate in conjunction with the multi-axis motion sensor;and a connection port provided on the housing, the connection port beingconfigured to connect to an external device.
 14. A method comprising:attaching a device to a robot arm, the device including: a housing forattaching to the robot arm; a multi-axis motion sensor provided withinthe housing, the multi-axis motion sensor being configured to detectmovement of the housing, the multi-axis motion sensor being configuredto communicate with a controller of the robot arm; a user interfaceconfigured to operate in conjunction with the multi-axis motion sensor;and a connection port provided on the housing, the connection port beingconfigured to connect to an external device; and detecting movement ofthe housing using the multi-axis motion sensor; and controllingoperation of the robot arm using the detected movement of the housing.15. The method according to claim 14, further comprising detectingacceleration using the multi-axis motion sensor in order to determinevibration of the device or collision with an object, wherein thedetected acceleration is used to perform feedback control of theoperation of the robot arm.
 16. The method according to claim 14,further comprising manipulating the robot arm and operating the userinterface to teach an operation of the robot arm to the controller. 17.The method according to claim 14, further comprising operating the userinterface to select a type of motion of the robot arm.
 18. The methodaccording to claim 14, further comprising operating the user interfaceto control operation of an end effector mounted to the robot arm. 19.The method according to claim 14, further comprising operating the userinterface to control the external device via the connection port. 20.The method according to claim 14, wherein the user interface includesone or more lights, and further comprising providing indicia of a statusof operation of the robot arm using one or more lights.